package com.ophiux.cs.im;

import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;

/**
 * 配置WebSocket
 * @author chenh
 *
 */
@Configuration
/**
 * 注解开启使用STOMP协议来传输基于代理(message broker)的消息,
 * 这时控制器支持使用@MessageMapping,就像使用@RequestMapping一样
 *
 */
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

	@Override
	public void registerStompEndpoints(StompEndpointRegistry registry) {
		
		 //注册一个STOMP的endpoint,并指定使用SockJS协议
        registry.addEndpoint("/endpointAric").withSockJS();
        //注册名为"endpointChat"的endpoint
        registry.addEndpoint("/endpointChat").setAllowedOrigins("*").withSockJS();
		
	}

	@Override
	public void configureMessageBroker(MessageBrokerRegistry registry) {
		super.configureMessageBroker(registry);
		
		 //广播式应配置一个/topic消息代理
//      registry.enableSimpleBroker("/topic");
		
		//点对点式应配置/queue和/topic消息代理
		registry.enableSimpleBroker("/user","/topic");
		registry.setUserDestinationPrefix("/user/");
	}
	
}
